---
layout: "default"
title: "Protocols"
description: "Documentation for all protocols in the Swift language."
root: "/v1.2"
---

<div class="row">
<div class="col-sm-6">
<ul class="main-list">
<li><a href="/v1.2/protocol/AbsoluteValuable/">AbsoluteValuable</a></li>
<li><a href="/v1.2/protocol/AnyObject/">AnyObject</a></li>
<li><a href="/v1.2/protocol/ArrayLiteralConvertible/">ArrayLiteralConvertible</a></li>
<li><a href="/v1.2/protocol/BidirectionalIndexType/">BidirectionalIndexType</a></li>
<li><a href="/v1.2/protocol/BitwiseOperationsType/">BitwiseOperationsType</a></li>
<li><a href="/v1.2/protocol/BooleanLiteralConvertible/">BooleanLiteralConvertible</a></li>
<li><a href="/v1.2/protocol/BooleanType/">BooleanType</a></li>
<li><a href="/v1.2/protocol/CVarArgType/">CVarArgType</a></li>
<li><a href="/v1.2/protocol/CollectionType/">CollectionType</a></li>
<li><a href="/v1.2/protocol/Comparable/">Comparable</a></li>
<li><a href="/v1.2/protocol/DebugPrintable/">DebugPrintable</a></li>
<li><a href="/v1.2/protocol/DictionaryLiteralConvertible/">DictionaryLiteralConvertible</a></li>
<li><a href="/v1.2/protocol/Equatable/">Equatable</a></li>
<li><a href="/v1.2/protocol/ExtendedGraphemeClusterLiteralConvertible/">ExtendedGraphemeClusterLiteralConvertible</a></li>
<li><a href="/v1.2/protocol/ExtensibleCollectionType/">ExtensibleCollectionType</a></li>
<li><a href="/v1.2/protocol/FloatLiteralConvertible/">FloatLiteralConvertible</a></li>
<li><a href="/v1.2/protocol/FloatingPointType/">FloatingPointType</a></li>
<li><a href="/v1.2/protocol/ForwardIndexType/">ForwardIndexType</a></li>
<li><a href="/v1.2/protocol/GeneratorType/">GeneratorType</a></li>
<li><a href="/v1.2/protocol/Hashable/">Hashable</a></li>
<li><a href="/v1.2/protocol/IntegerArithmeticType/">IntegerArithmeticType</a></li>
<li><a href="/v1.2/protocol/IntegerLiteralConvertible/">IntegerLiteralConvertible</a></li>
<li><a href="/v1.2/protocol/IntegerType/">IntegerType</a></li>
<li><a href="/v1.2/protocol/IntervalType/">IntervalType</a></li>
<li><a href="/v1.2/protocol/MirrorType/">MirrorType</a></li>
<li><a href="/v1.2/protocol/MutableCollectionType/">MutableCollectionType</a></li>
<li><a href="/v1.2/protocol/MutableSliceable/">MutableSliceable</a></li>
<li><a href="/v1.2/protocol/NilLiteralConvertible/">NilLiteralConvertible</a></li>
<li><a href="/v1.2/protocol/OutputStreamType/">OutputStreamType</a></li>
<li><a href="/v1.2/protocol/Printable/">Printable</a></li>
<li><a href="/v1.2/protocol/RandomAccessIndexType/">RandomAccessIndexType</a></li>
<li><a href="/v1.2/protocol/RangeReplaceableCollectionType/">RangeReplaceableCollectionType</a></li>
<li><a href="/v1.2/protocol/RawOptionSetType/">RawOptionSetType</a></li>
<li><a href="/v1.2/protocol/RawRepresentable/">RawRepresentable</a></li>
<li><a href="/v1.2/protocol/Reflectable/">Reflectable</a></li>
<li><a href="/v1.2/protocol/SequenceType/">SequenceType</a></li>
<li><a href="/v1.2/protocol/SignedIntegerType/">SignedIntegerType</a></li>
<li><a href="/v1.2/protocol/SignedNumberType/">SignedNumberType</a></li>
<li><a href="/v1.2/protocol/SinkType/">SinkType</a></li>
<li><a href="/v1.2/protocol/Sliceable/">Sliceable</a></li>
<li><a href="/v1.2/protocol/Streamable/">Streamable</a></li>
<li><a href="/v1.2/protocol/Strideable/">Strideable</a></li>
</ul>
</div>
<div class="col-sm-6">
<ul class="main-list">
<li><a href="/v1.2/protocol/StringInterpolationConvertible/">StringInterpolationConvertible</a></li>
<li><a href="/v1.2/protocol/StringLiteralConvertible/">StringLiteralConvertible</a></li>
<li><a href="/v1.2/protocol/UnicodeCodecType/">UnicodeCodecType</a></li>
<li><a href="/v1.2/protocol/UnicodeScalarLiteralConvertible/">UnicodeScalarLiteralConvertible</a></li>
<li><a href="/v1.2/protocol/UnsignedIntegerType/">UnsignedIntegerType</a></li>
<li><a href="/v1.2/protocol/_ArrayBufferType/">_ArrayBufferType</a></li>
<li><a href="/v1.2/protocol/_ArrayType/">_ArrayType</a></li>
<li><a href="/v1.2/protocol/_BidirectionalIndexType/">_BidirectionalIndexType</a></li>
<li><a href="/v1.2/protocol/_CVarArgPassedAsDouble/">_CVarArgPassedAsDouble</a></li>
<li><a href="/v1.2/protocol/_CocoaStringType/">_CocoaStringType</a></li>
<li><a href="/v1.2/protocol/_CollectionType/">_CollectionType</a></li>
<li><a href="/v1.2/protocol/_Comparable/">_Comparable</a></li>
<li><a href="/v1.2/protocol/_DestructorSafeContainer/">_DestructorSafeContainer</a></li>
<li><a href="/v1.2/protocol/_ExtensibleCollectionType/">_ExtensibleCollectionType</a></li>
<li><a href="/v1.2/protocol/_ForwardIndexType/">_ForwardIndexType</a></li>
<li><a href="/v1.2/protocol/_Incrementable/">_Incrementable</a></li>
<li><a href="/v1.2/protocol/_IntegerArithmeticType/">_IntegerArithmeticType</a></li>
<li><a href="/v1.2/protocol/_IntegerType/">_IntegerType</a></li>
<li><a href="/v1.2/protocol/_NSArrayCoreType/">_NSArrayCoreType</a></li>
<li><a href="/v1.2/protocol/_NSCopyingType/">_NSCopyingType</a></li>
<li><a href="/v1.2/protocol/_NSDictionaryCoreType/">_NSDictionaryCoreType</a></li>
<li><a href="/v1.2/protocol/_NSDictionaryType/">_NSDictionaryType</a></li>
<li><a href="/v1.2/protocol/_NSEnumeratorType/">_NSEnumeratorType</a></li>
<li><a href="/v1.2/protocol/_NSFastEnumerationType/">_NSFastEnumerationType</a></li>
<li><a href="/v1.2/protocol/_NSSetCoreType/">_NSSetCoreType</a></li>
<li><a href="/v1.2/protocol/_NSSetType/">_NSSetType</a></li>
<li><a href="/v1.2/protocol/_NSStringCoreType/">_NSStringCoreType</a></li>
<li><a href="/v1.2/protocol/_ObjectiveCBridgeable/">_ObjectiveCBridgeable</a></li>
<li><a href="/v1.2/protocol/_PointerType/">_PointerType</a></li>
<li><a href="/v1.2/protocol/_RandomAccessIndexType/">_RandomAccessIndexType</a></li>
<li><a href="/v1.2/protocol/_RawOptionSetType/">_RawOptionSetType</a></li>
<li><a href="/v1.2/protocol/_SequenceType/">_SequenceType</a></li>
<li><a href="/v1.2/protocol/_Sequence_Type/">_Sequence_Type</a></li>
<li><a href="/v1.2/protocol/_ShadowProtocol/">_ShadowProtocol</a></li>
<li><a href="/v1.2/protocol/_SignedIntegerType/">_SignedIntegerType</a></li>
<li><a href="/v1.2/protocol/_SignedNumberType/">_SignedNumberType</a></li>
<li><a href="/v1.2/protocol/_Sliceable/">_Sliceable</a></li>
<li><a href="/v1.2/protocol/_Strideable/">_Strideable</a></li>
<li><a href="/v1.2/protocol/_StringElementType/">_StringElementType</a></li>
<li><a href="/v1.2/protocol/_UnsignedIntegerType/">_UnsignedIntegerType</a></li>
<li><a href="/v1.2/protocol/__ArrayType/">__ArrayType</a></li>
</ul>
</div>
</div>
